package com.example.demo_one.kotlin

fun main() {
//    1 : 实例对象
    val man = Person("张三", 18)
    man.show()
    val woman = Person2("李四", 20)
    woman.show()
}

//采用主构造函数 -- 显示
class Person constructor(var name: String, var age: Int) {
    //    实例化对象成功后一定会执行init代码块
    init {
        println("来了")
        require(age > 0) { "年龄必须大于0" } // 对参数进行一些操作
        require(name.isNotEmpty()) { "姓名不能为空" } // 姓名不能为空
    }

    fun show() {
        println("name:$name , age:$age")
    }
}

//采用主构造函数 -- 隐式 -- 使用较多
class Person2(var name: String, var age: Int) {
    //    实例化对象成功后一定会执行init代码块
    init {
        println("来了")
    }

    fun show() {
        println("name:$name , age:$age")
    }
}
